package entities.xml;

import java.io.Serializable;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import entities.ItemCotizacion;
import entities.Rodamiento;

@SuppressWarnings("serial")
@XStreamAlias("ItemCotizacion")
public class ItemCotizacionXML implements Serializable, ExchangeFormatEntity{
	public ItemCotizacionXML() {
		super();
	}
	@XStreamAlias("codigo")
	private String codigo;
	@XStreamAlias("cantidad")
	private Integer cantidad;
	@XStreamAlias("caracteristicas")
	private String caracteristicas;
	@XStreamAlias("marca")
	private String marca;
	@XStreamAlias("origen")
	private String origen;
	@XStreamAlias("precio")
	private Double precio;
	@XStreamAlias("idlistaprecios")
	private Integer idlistaprecios;
	
	public ItemCotizacionXML(String codigo, Integer cantidad, String caracteristicas, String marca,
			String origen, Double precio, Integer idlistaprecios) {
		super();
		this.codigo = codigo;
		this.cantidad = cantidad;
		this.caracteristicas = caracteristicas;
		this.marca = marca;
		this.origen = origen;
		this.precio = precio;
		this.idlistaprecios = idlistaprecios;
	}
	
	public ItemCotizacionXML(ItemCotizacion itemCotizacion){
		this.setCantidad(itemCotizacion.getCantidad());
		this.setCaracteristicas(itemCotizacion.getRodamiento().getCaracteristicas());
		this.setCodigo(itemCotizacion.getRodamiento().getCodigo());
		this.setIdlistaprecios(itemCotizacion.getListaPreciosId());
		this.setMarca(itemCotizacion.getRodamiento().getMarca());
		this.setOrigen(itemCotizacion.getRodamiento().getOrigen());
		if (itemCotizacion.getPrecio()!= null){
			this.setPrecio(new Double(itemCotizacion.getPrecio()));
		}
	}
	
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public Integer getCantidad() {
		return cantidad;
	}
	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getOrigen() {
		return origen;
	}
	public void setOrigen(String origen) {
		this.origen = origen;
	}
	public Double getPrecio() {
		return precio;
	}
	public void setPrecio(Double precio) {
		this.precio = precio;
	}
	public Integer getIdlistaprecios() {
		return idlistaprecios;
	}
	public void setIdlistaprecios(Integer idlistaprecios) {
		this.idlistaprecios = idlistaprecios;
	}
	public String getCaracteristicas() {
		return caracteristicas;
	}
	public void setCaracteristicas(String caracteristicas) {
		this.caracteristicas = caracteristicas;
	}

	@Override
	public ItemCotizacion toModelEntity() {
		ItemCotizacion itemCotizacion = new ItemCotizacion();
		Rodamiento rodamiento = new Rodamiento();
		
		rodamiento.setCaracteristicas(this.getCaracteristicas());
		rodamiento.setCodigo(this.getCodigo());
		rodamiento.setMarca(this.getMarca());
		rodamiento.setOrigen(this.getOrigen());
		
		itemCotizacion.setCantidad(this.getCantidad());
		itemCotizacion.setListaPreciosId(this.getIdlistaprecios());
		itemCotizacion.setPrecio(new Float(this.getPrecio()));
		itemCotizacion.setRodamiento(rodamiento);
		return itemCotizacion;
	}

	@Override
	public void fromModelEntity(Object obj) {
		ItemCotizacion itemCotizacion = (ItemCotizacion) obj;
		this.setCantidad(itemCotizacion.getCantidad());
		this.setCaracteristicas(itemCotizacion.getRodamiento().getCaracteristicas());
		this.setCodigo(itemCotizacion.getRodamiento().getCodigo());
		this.setIdlistaprecios(itemCotizacion.getListaPreciosId());
		this.setMarca(itemCotizacion.getRodamiento().getMarca());
		this.setOrigen(itemCotizacion.getRodamiento().getOrigen());
		this.setPrecio(new Double(itemCotizacion.getPrecio()));
	}

}
